[C++] main 函数前面为什么要加上数据类型比如 int void ?

摘自eric的笔记

main函数的返回值是返回给主调进程,使主调进程得知被调用程序的运行结果。

标准规范中规定main函数的返回值为int,一般约定返回0值时代表程序运行无错误,其它值均为错误号,但该约定并非强制。

如果程序的运行结果不需要返回给主调进程,或程序开发人员确认该状态并不重要,比如所有出错信息均在程序中有明确提示的情况下,可以不写main函数的返回值。在一些检查不是很严格的编译器中,比如VC, VS等,void类型的main是允许的。不过在一些检查严格的编译器下,比如g++, 则要求main函数的返回值必须为int型。

所以在编程时,区分程序运行结果并以int型返回,是一个良好的编程习惯